package dao.examinfo;

import java.util.List;

import util.paramvo.MemberPageListParamVO;
import util.paramvo.UnitPageListParamVO;
import vo.ExaminfoVO;

public interface ExaminfoDAO {

	/**
	 * 해당 페이지 시험정보
	 * @param param int majorunit_no, int rowPerPage, int page
	 * @return
	 */
	public List<ExaminfoVO> getExaminfos(UnitPageListParamVO param) throws Exception;

	/**
	 * 입시정보 등록
	 * @param param
	 */
	public void registerExaminfo(ExaminfoVO param) throws Exception;
	
	/**
	 * 입시정보 수정. 승인 0으로 바꿔서 새로 승인받게 해야 함.
	 * @param param
	 */
	public void updateExaminfo(ExaminfoVO param) throws Exception;
	
	/**
	 * 입시정보 삭제. 말이 삭제지 delete를 1로 바꾸는 것.
	 * @param examinfo_no
	 */
	public void deleteExaminfo(int examinfo_no) throws Exception;
	
	/**
	 * 해당 학과 입시정보 수
	 * @param majorunit_no
	 * @return 
	 */
	public int getExaminfoCount(int majorunit_no) throws Exception;
	
	/**
	 * 해당 학과의 입시정보를 작성한 적이 있는가
	 * @param param int member_no, int majorunit_no
	 * @return 했었으면 1, 안했으면 0
	 */
	public int didWriteExaminfo(ExaminfoVO param) throws Exception;

	/**
	 * 해당 학과의 난이도 평균
	 * @param majorunit_no
	 * @return
	 */
	public float getAverageLevel(int majorunit_no) throws Exception;
	
	/**
	 * 내 입시정보 가져오기
	 * @param param
	 * @return
	 */
	public List<ExaminfoVO> getMyExaminfos(MemberPageListParamVO param) throws Exception;

	/**
	 * 총 내 입시정보 수
	 * @param member_no
	 * @return
	 */
	public int getMyExaminfoCount(int member_no) throws Exception;
}
